package com.gduf.lsm.mapper;

import com.gduf.lsm.common.annotation.AutoFill;
import com.gduf.lsm.common.enums.OperationType;
import com.gduf.lsm.entity.News;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @Author lsm
 * @Data
 * 咨询信息
 */
@Mapper
public interface NewsMapper {
    /**
     * 新增
     * @param news
     * @return
     */
    @AutoFill(value = OperationType.INSERT)
    int insert(News news);

    /**
     * 删除
     * @param id
     * @return
     */
    int deleteById(Integer id);

    /**
     * 修改
     * @param news
     * @return
     */
    @AutoFill(value = OperationType.UPDATE)
    int updateById(News news);

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    @Select("select * from news where id=#{id}")
    News selectById(Integer id);

    /**
     * 查询所有（模糊查询，分页）
     * @param news
     * @return
     */
    List<News> selectAll(News news);

    /**
     * 根据分类名查询分类
     * @param title
     * @return
     */
    @Select("select * from news where title=#{title}")
    News selectByTitle(String title);

    /**
     * 查找最热最新数据
     * @param sort
     * @return
     */
    List<News> selectTopNews(String sort);

    /**
     * 更新浏览量
     * @param id
     */
    @Update("update news set count=count+1 where id=#{id}")
    void updateCount(Integer id);
}
